import axios from 'axios';
export function request(config){
    //1. 创建axios实例
    const instance  = axios.create({
        baseURL: "http://152.136.185.210:7878/api/m5",
        timeout: 5000
    });

    // axios.interceptors.request 全局拦截
    // axios拦截器
    //2.1 请求拦截
    instance.interceptors.request.use(config => {
        // console.log(config);
        // console.log('我开始拦截了');
        return config;
    },error => {
        console.log(error);
    })
    
    //2.2 响应拦截
    instance.interceptors.response.use(res => {
        return res.data
    }), err => {
        console.log(err);
    }
    
    //因为axios.create返回的是一个promise
    //发送网络请求
    return instance(config)
}

// //使用promise封装
// export function request(config){
//     return new Promise((resolve, reject) => {
//        const instance  = axios.create({
//            baseURL: "http://152.136.185.210:7878/api/m5",
//            timeout: 5000
//        });
//        instance(config).then(res => {
//            console.log(res);
//            resolve(res)
//        }).catch(err => {
//            reject(err)
//        })
//     })
// }

//1. 只传一个参数
// export function request(config) {
//     //1. 创建axios实例
//     const instance = axios.create({
//         baseURL: "http://152.136.185.210:7878/api/m5",
//         timeout: 5000
//     });
//     //2. 发送网络请求
//     instance(config.baseConfig).then(res => {
//         console.log(res);
//         config.success(res)
//     }).catch(error => {
//         console.log(error);
//         config.failure(error)
//     })
// }

// 2. 传多个参数
// export function request(config, success, failure) {
//     //1. 创建axios实例
//     const instance = axios.create({
//         baseURL : "http://152.136.185.210:7878/api/m5",
//         timeout: 5000
//     });
//     //2. 发送网络请求
//     instance(config).then(res => {
//         console.log(res);
//         success(res)
//     }).catch(error => {
//         console.log(error);
//         failure(error)
//     })
// }